An OpenGL object that represents a linear array of memory, containing arbitrary data. The contents of the buffer are defined by the user, but the memory is allocated by OpenGL. Data in buffer objects can be used for many purposes, including storing vertex data to be used when rendering.
A shader variable, declared at global scope. Input variables receive their values from earlier stages in the OpenGL rendering pipeline.
A shader variable, declared at global scope, using the out
keyword. Output variables written to by a shader are passed to later stages in
the OpenGL rendering pipeline for processing.
Input variables to vertex shaders are called vertex attributes. Each vertex
attribute is a vector of up to 4 elements in length. Vertex attributes are drawn
from buffer objects; the connection between buffer object data and vertex inputs
is made with the glVertexAttribPointer
and
glEnableVertexAttribArray
functions. Each vertex
attribute in a particular program object has an index; this index can be queried
with glGetAttribLocation
. The index is used by the various
other vertex attribute functions to refer to that specific attribute.
Each input variable in a vertex shader must be assigned an index number. This number is used in code to refer to that particular attribute. This number is the attribute index.
The process of transforming vertex data from normalized device coordinate space to window space. It specifies the viewable region of a window.
An object in the OpenGL API that is used to compile shaders and represent the compiled shader's information. Each shader object is typed based on the shader stage that it contains data for.
An object in the OpenGL API that represents the full sequence of all shader processing to be used when rendering. Program objects can be queried for attribute locations and various other information about the program. They also contain some state that will be seen in later tutorials.